Presentation is loading. Please wait.

Presentation is loading. Please wait.

CSE1301 Computer Programming Lecture 2: Introduction to Algorithms

Similar presentations


Presentation on theme: "CSE1301 Computer Programming Lecture 2: Introduction to Algorithms"— Presentation transcript:

1 CSE1301 Computer Programming Lecture 2: Introduction to Algorithms

2 Topics A little bit of History: Systematic problem solving Algorithms
The idea of a universal machine Systematic problem solving Algorithms

3 A “Universal” Machine Programmability
Binary Code (everything stored as “0” or “1”) Program and Data are represented in the same form Electronic Components A washing machine is also programmed, but not universal…

4 Early Computing History in a Nutshell
200 BC - today Abacus - ~1670 Leibniz’ “Rechenmaschine” Fixed calculations +, -, *, /, sqrt ~1750 Jacquard’s Loom Punch Tape 1820 Babbage’s “Difference Engine” Fixed Table Calculation 1838 Babbage’s “Analytical Engine” Program & Data separate 1841 Ada Byron, Lady Lovelace First program (Bernoulli-Numbers)

5 Leibniz’s Step Reckoner
Gottfried von Leibniz 1670 Add, subtract, multiply, divide, square roots

6 Jacquard’s punch card Joseph Marie Jacquard 1804
punch cards used to operate loom

7 Babbage’s analytical engine
Charles Babbage ( ) Design for the analytical engine Motivated by error in vital tables. British Empire -> Navy -> Navigation Tables Industrial Revolution -> Life Insurance -> Risk Tables Programmable, but mechanical. Data+Program separate

8 One of the first Programmers
Lady Ada Augusta Byron, Countess of Lovelace ( ) ( )

9 Early Computing History in a Nutshell
200 BC - today Abacus - ~1670 Leibniz’ “Rechenmaschine” Fixed calculations ~1750 Jacquard’s Loom Punch Tape 1820 Babbage’s “Difference Engine” Fixed Table Calculation 1838 Babbage’s “Analytical Engine” Program & Data separate 1841 Ada Byron, Lady Lovelace First program (Bernoulli-Numbers) However, what universal really means was only understood in the 1930’s Babbage’s machines were never completed First universal programmable machine

10 The Ancestors 1886 Hollerith Punch Cards 1936 Zuse Z1 Relais 1941-1944
Binary code 1886 Hollerith Punch Cards 1936 Zuse Z1 Relais Zuse Z3/Z4 “Plankalkül” 1944 Mark I Partly mechanic 1943 Colossus Not universal 1946 Eniac Programmable with Re-wiring 1949 Manchester Universal Computer Cathode-Ray Tube Memory universal electronic Integration: fully electronic binary Programmable universal

11 Hollerith’s Tabulating Machine
Herman Hollerith ( ) Invented a punched card device to help analyse the 1890 US census data Founded “Tabulating Machine Company” 1896 1924 – Tabulating Machine Company merges with others to form IBM Reduced census effort from 10 years of manual counting to two years Trying to find new markets, Hollerith then expanded his business to Railway companies Binary but not really programmable

12 Konrad Zuse 1936: Z1 first binary computer using Erector Set parts, keyboard and lights for output (relay memory) 1938: Z2 – using punched tape and relays Original motivation: solving simultaneous equations in aircraft construction problems (stability) Z1 Z3: fully binary, fully programmable, but partly mechanical

13 Colossus Fully electronic, but not universally programmable
1943 British Colossus – (1,500 vacuum tubes) Decipher enigma coded messages at 5,000 chars/sec At peak, 10 machines ran 24 hours a day in Bletchley Park A German enigma coding machine Fully electronic, but not universally programmable

14 Harvard Mark 1 Universal, fully programmable But partly mechanical
Aiken at Harvard/IBM “Mark 1” – first electromechanical digital computer (electromagnetic relays – magnets open and close metal switches) (recreation of Analytical Engine) 8 ft tall, 50 ft long, 1 million parts 323 decimal-digit additions per sec storage for digit numbers. Developed at Harvard together with IBM and support of the Navy Universal, fully programmable But partly mechanical

15 ENIAC (1946) Fully electronic, programmable
18,000 tubes, 1500 sq ft Programmed by wire plugs into panels 5,000 decimal-digit additions/sec 20 10-decimal digit “accumulators” Original motivation: calculating tables required for aiming anti-aircraft fire Von Neumann and ENIAC Fully electronic, programmable But extensive-wiring required

16 Experminental MUC (1949) First fully electronic universal computer
1941 Von Neumann proposes EDVAC – Electronic Discrete Variable Computer Computer should Use binary Have stored programs Be function-oriented Team Members from Bletchley Park and EDVAC/ENIAC collaborate at Manchester Add CRT display memory First fully electronic universal computer

17 The Problem-solving Process
"Doctor, my head hurts" Patient has elevated pressure in anterior parietal lobe Analysis Problem specification 1. Sterilize cranial saw 2. Anaesthetize patient 3. Remove top of skull 4. Get the big spoon... 5. etc., etc. Design Algorithm Implementation sterilize(saw,alcohol); raise_hammer(); lower hammer(fast); start(saw); /* etc. etc. */ Program Compilation Executable (solution)

18 The Problem-solving Process
"Doctor, my head hurts" Patient has elevated pressure in anterior parietal lobe. Analysis Problem specification 1. Sterilize cranial saw 2. Anaesthetize patient 3. Remove top of skull 4. Get the big spoon... 5. etc., etc. Design Algorithm Implementation sterilize(saw,alcohol); raise_hammer(); lower hammer(fast); start(saw); /* etc. etc. */ This Is not a linear process! Program Compilation Executable (solution)

19 The Problem-solving Process
Analysis Problem specification Design Algorithm Implementation Program Compilation Executable (solution)

20 Algorithm A sequence of instructions specifying the steps required to accomplish some task Named after: Muhammad ibn Musa al-Khwarizmi of Khowarezm (now Khiva in Uzbekistan) Circa C.E. (Common Era)

21 Algorithm –History Muhammad ibn Musa Al-Khwarizmi Book on arithmetic:
Book on arithmetic: Hindu numeration, decimal numbers, use of zero, method for finding square root Latin translation (c.1120 CE): “Algoritmi de numero Indorum” Book on algebra Hisab al-jabr w’al-muqabala

22 Algorithm – Working Definition
A sequence of instructions describing how to do a task [As opposed to actually executing the instructions]

23 Algorithm -- Examples A cooking recipe
Assembly instructions for a model The rules of how to play a game VCR instructions Description of a martial arts technique Directions for driving from A to B A knitting pattern A car repair manual

24 Algorithm – Examples (cont)
Recipe for Almond and honey slice Recipe for Arroz con pollo

25 Almond and Honey Slice Preheat oven for 200° C
Line a 30 cm  20 cm baking tray with baking paper, and then with pastry Bake blind for 20 minutes, then remove weights and foil Turn oven up to 220° C. Bring remaining ingredients to a boil, stirring. Spread evenly over pastry. Bake until topping is bubbling and has caramelised evenly, about 15 minutes. Cool before cutting into fingers or squares. 1/2 quantity Shortcrust Pastry 185 g unsalted butter 100 g castor sugar 5 tablespoons honey 50 ml cream 50 ml brandy or any other liqueur or spirit 300 g flaked almonds From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

26 Almond and Honey Slice Preheat oven for 200° C
Line a 30 cm  20 cm baking tray with baking paper, and then with pastry Bake blind for 20 minutes, then remove weights and foil Turn oven up to 220° C. Bring remaining ingredients to a boil, stirring. Spread evenly over pastry. Bake until topping is bubbling and has caramelised evenly, about 15 minutes. Cool before cutting into fingers or squares. 1/2 quantity Shortcrust Pastry 185 g unsalted butter 100 g castor sugar 5 tablespoons honey 50 ml cream 50 ml brandy or any other liqueur or spirit 300 g flaked almonds Instructions are given in the order in which they are performed (“executed”) From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

27 Correct Algorithm? Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil. Remove the chicken and to the juices in the casserole add garlic, onions and green peppers, and sauté until onion is golden. Add bay leaf, whole tomatoes, and chicken broth. When the broth boils add salt, saffron and rice. Arrange chicken on rice, cover casserole and bake in a moderate oven (350°F) for 20 minutes or until the rice is tender. Add beans and artichokes during last 10 minutes of cooking. From: “Arroz Con Pollo” in The Margaret Fulton Cookbook, Hamlyn, Sydney, 1968.

28 Correct Algorithm? Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil. Remove the chicken and to the juices in the casserole add garlic, onions and green peppers, and sauté until onion is golden. Add bay leaf, whole tomatoes, and chicken broth. When the broth boils add salt, saffron and rice. Arrange chicken on rice, cover casserole and bake in a moderate oven (350°F) for 20 minutes or until the rice is tender. Add beans and artichokes during last 10 minutes of cooking. From: “Arroz Con Pollo” in The Margaret Fulton Cookbook, Hamlyn, Sydney, 1968.

29 Correct Algorithm? Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil. Remove the chicken and to the juices in the casserole add garlic, onions and green peppers, and sauté until onion is golden. Add bay leaf, whole tomatoes, and chicken broth. When the broth boils add salt, saffron and rice. Arrange chicken on rice, cover casserole and bake in a moderate oven (350°F) for 10 minutes. Add beans and artichokes. Cover, and bake for another 10 minutes or until rice is tender.

30 From Algorithms to Programs
Algorithm: A sequence of instructions describing how to do a task (or process) Problem C Program

31 Components of an Algorithm
Variables and values Instructions Sequences Procedures Selections Repetitions Also required: Documentation

32 Values Represent quantities, amounts or measurements
May be numerical or alphabetical (or other things) Often have a unit related to their purpose Example: Recipe ingredients

33 Almond and Honey Slice Preheat oven for 200° C
Line a 30 cm  20 cm baking tray with baking paper, and then with pastry Bake blind for 20 minutes, then remove weights and foil Turn oven up to 220° C. Bring remaining ingredients to a boil, stirring. Spread evenly over pastry. Bake until topping is bubbling and has caramelised evenly, about 15 minutes. Cool before cutting into fingers or squares. 1/2 quantity Shortcrust Pastry 185 g unsalted butter 100 g castor sugar 5 tablespoons honey 50 ml cream 50 ml brandy or any other liqueur or spirit 300 g flaked almonds From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

34 Almond and Honey Slice Preheat oven for 200° C
Line a 30 cm  20 cm baking tray with baking paper, and then with pastry Bake blind for 20 minutes, then remove weights and foil Turn oven up to 220° C. Bring remaining ingredients to a boil, stirring. Spread evenly over pastry. Bake until topping is bubbling and has caramelised evenly, about 15 minutes. Cool before cutting into fingers or squares. 1/2 quantity Shotcrust Pastry 185 g unsalted butter 100 g castor sugar 5 tablespoons honey 50 ml cream 50 ml brandy or any other liqueur or spirit 300 g flaked almonds From: Stephanie Alexander, The Cook’s Companion, Viking/Penguin, Ringwood, Victoria, 1996, p. 349.

35 Variables Are containers for values – places to store values Example:
This jar can contain 10 cookies 50 grams of sugar 3 slices of cake etc. Values Variable One form: strain the juices, put aside and let cool …(further instruction)… now add the reserved mix In mathematics much more precisely: Call the sum of all items X. Call the number of items N… divide X by N

36 Restrictions on Variables
Variables may be restricted to contain a specific type of value

37 Components of an Algorithm
Values and Variables Instruction (a.k.a. primitive) Sequence (of instructions) Procedure (involving instructions) Selection (between instructions) Repetition (of instructions) Documentation (beside instructions)

38 Summary Reading Deitel & Deitel, C: How to program
Problem Solving Process Algorithms Components of Algorithms Values and Variables Instructions to be continued... Reading Deitel & Deitel, C: How to program Chapter 3, Sections 3.1 to 3.3


Download ppt "CSE1301 Computer Programming Lecture 2: Introduction to Algorithms"

Similar presentations


Ads by Google